Due to specific design requirements, cost constraints, and international regulations, low-cost, low-data rate user input devices, e.g., mice and keyboards, for use with a host computer, use a limited number of RF channels, very often only one or two. Consequently, especially in an office environment, RF interference generated by collocated devices is potentially a serious problem. Some users of wireless input devices in an office environment complain of coexistence issues which, in the case of a computer mouse or the like, usually manifest as missed button presses.
FIG. 1 illustrates an exemplary arrangement of a mouse 1 having an RF data link to a host computer 3. Mouse 1 includes within its housing a radio transmitter that transmits RF signals to a receiver 5 that connects to host computer 3 with a universal serial bus (USB) cable or the like. Mouse 1 may be used in an ordinary fashion, e.g., a user can move a cursor across a computer display screen 9 by moving the mouse over a flat surface, and can control the actions of an on-screen cursor in a conventional “point and click” manner. When a user moves mouse 1 and clicks its buttons, mouse 1 generates binary data representing this activity. A processor within the mouse encapsulates the data into packets, and sends the packets to receiver 5 as radio frequency (RF) signals. A processor within receiver 5 decodes the data and passes it on to host computer 3.
FIG. 1 further illustrates a keyboard 11 having an RF data link to host computer 3. A transmitter within keyboard 11 transmits an RF signal to RF receiver 5. Key-press data is encapsulated by a processor of the keyboard into data packets that are transmitted by the transmitter for receipt and decoding by a processor of receiver 5.
An exemplary data encoding scheme often utilized for transmission of data by wireless data input devices, such as mouse 1 and keyboard 11, is known as Data Difference Modulation (DDM). The Data Difference Modulation (DDM) scheme consists of four symbols, expressed as the time difference between state transitions. The encoded signal appears as a series of “0”-“1” or “1”-“0” transitions separated in time. Each transition represents a symbol, which is identified by dividing the elapsed time from the preceding transition by the basic time unit. The basic time unit is denoted with T and represents the shortest symbol duration. The time lengths of each symbol are fractional multiples of this basic unit of time.
The following symbols are used in DDM (see also Table 1 below).
Synchronization (SYNC) Symbol (t=2.5T)
This symbol is used to mark the beginning of a data transmission packet. It is assigned the longest time length of all the symbols in the symbol set because it occurs only once per packet. The SYNC symbol also initializes the last bit state to a binary “0” for data difference calculations
Difference Symbol (t=T)
This symbol represents a bit that is the complement of the previous bit. If the previous symbol was a SYNC symbol, the bit represented is “1”.
Same-Different Symbol (t=1.5T)
This symbol is used to encode two bits: the first bit is equal and the second bit is the complement of the last bit. If the previous symbol was a SYNC symbol, then the bits represented by this symbol are “01”.
Same-Same Symbol (t=2T)
This symbol is used to encode two bits, each equal to the value of the last bit. If the last symbol was a SYNC symbol, the bits represented by this symbol are “00”.
TABLE 1DDM EncodingCurrentPreviousCurrentSecondSymbol LengthBitFirst BitBitSymbol[time units]000Same-Same2 T001Same-1.5 TDifferent01XDifferentT10XDifferentT110Same-1.5 TDifferent111Same-Same2 TxxXSYNC2.5 TTrailing Same-Bit Ambiguity
When a finite-length bit stream is DDM encoded, there is a possibility that the last message bit will fall on a new symbol boundary but be of the same value as the last bit (the trailing “same” bit). An ambiguity exists as to which symbol should be used to encode the bit, since both the Same-Different and Same-Same symbols would accurately describe the trailing bit, but each would suggest the existence of an additional bit. This is generally not an issue, because the length of the message to be received is known and the additional bit, if present, can be ignored.
Header and Packet Format
Data packets generally start with a header, e.g., as shown in FIG. 2. The illustrated header consists of a given number of T pulses of predetermined duration (nine in this example, but the number may vary, depending on the specific implementation) and is abbreviated followed by a SYNC pulse and then the actual (“payload”) data. FIG. 2 shows an abbreviated sample data packet with only 13 data bits (/1/10/00/1/10/1/10/1/0/; the “/” sign is used to mark the transitions in the data block). Typical mouse or keyboard packets are longer, having 20-50 bits.
As stated above, the data encoding is based on symbol duration and not on symbol level. The logic levels corresponding to the idle state or various symbols cannot be guaranteed. Depending on the specific hardware implementation, the required idle level (i.e., no data to transmit) may be either “Low” or “High,” depending on the specific hardware implementation; for power saving reasons, the idle level should be chosen so that the power drawn from the batteries is negligible. After the last valid transition in the data packet, the DATA line may be either “High” or “Low”. If more data is available to be sent, the transmission continues from this state, with the first header pulse. If no data is available and the transmitter is to be turned OFF, the data line may have to be toggled to the idle state by an extra pulse. This extra pulse, between the last valid transition in the data packet and the return to idle state transition, should be from 0.5T to T wide. A long pulse is undesirable because it would lengthen the packet and thus have a negative impact on latency and power consumption. The pulse should be long enough to ensure it is transmitted correctly over the radio link; otherwise the receiver could miss it, causing an error in the packet. This pulse does not have to be decoded in the receiver; it simply serves to ensure that a first edge is not missed.
The Logical Layer of the Protocol
The length and format of the useful data block in the packet (the “payload” data) depend on the application's specific requirements and are not directly relevant to the matter discussed here. Besides the payload data, the data packet includes an ID code—a unique address associated with the transmitter and the receiver paired together. The ID code is typically not truly unique, as this would require using a large number of bits. For typical applications, only 8 to 12 bits are used for the ID code. This is enough to ensure that the probability of two collocated devices, e.g., computer mice or keyboards, having the same ID is reasonably low.
When several wireless data input devices are collocated and share the same RF channel, one receiver can receive the “desired” signal (the signal coming from the paired transmitter) but also “perturbations” (signals coming from other collocated transmitters). When a packet is received, the receiver will check packet's ID and decide whether the packet is a perturbation or desired signal. With a typical arrangement, the receiver listens to all the traffic on the RF channel and processes the packets sent on that channel, at least up to the point where the receiver can identify the ID code.
In addition to the ID code, the data block typically includes some kind of checksum or CRC to verify that the received packet has no errors. For relatively simple device applications, such as computer pointing devices and keyboards, simple error detection is usually sufficient and error correction is generally not employed. (Error correction would require redundant bits in the data packet and more processing power in the receiver.)
Signal Processing in Receiver
Receiver 5 typically includes a radio and a microprocessor for controlling the radio, decoding the demodulating signal, and interfacing with the host PC. Data decoding in the receiver is done by the microprocessor which measures the demodulated data pulse width and compares the results against some fixed thresholds (e.g., 0.75T, 1.25T, 1.75T, 2.25T, 2.75T). Thresholds as mentioned allow for ±0.25T margin for pulse width error (jitter) across the RF link (this includes pulse generation, RF modulation, propagation over air, RF demodulation, digital data recovery, and pulse width measurement). For example, if the measured pulse width is between 1.25T and 1.75T, then the pulse is decoded as 1.5T wide. If the measured pulse width is less then 0.75T or larger than 2.75T, then the current symbol is not a valid symbol.
In the absence of the RF signal, the microprocessor monitors the demodulated data line, waiting for valid header pulses (0.75T-1.25T duration). Although, for the example considered above nine header pulses are transmitted, several of the initial pulses (typically, the first one or two) could be missed by the receiver due to transient effects. Consequently, the receiver waits for only several consecutive valid header pulses (e.g., four or five in the example considered here) before starting the packet decoding process.
Once started, the packet decoding continues until a complete packet is received or until an invalid symbol aborts the decoding process. Note that an invalid symbol may be a symbol narrower than 0.75T or wider than 2.75T, but also a symbol wider than 2.25T if contained in the body of the data block (a SYNC pulse in the middle of the data packet is an invalid symbol).
If a complete packet is received, it is checked for errors and ID. Packets with errors or non-matching ID are rejected. If there are no errors and the packet's ID matches the expected ID, then the data is processed and sent to the host. Finally, the microprocessor returns to the waiting state, waiting for a new packet header.
If the packet is aborted due to an invalid symbol, then no action is taken and the microprocessor reinitializes, e.g., returns immediately to the waiting state.
FSK Modulation and the FM Capture Effect
For relatively low cost, low data rate data communication systems, FSK (Frequency Shift Keying) modulation provides the best cost-performance tradeoff. An important advantage of frequency modulation as compared to amplitude modulation is its relative insensitivity to noise and interference. Of particular interest for the subject discussed here is the phenomenon of “capture” in FM receivers: the stronger of two co-channel signals tends to suppress the output from the weaker one, except when the two are almost identical in signal strength. Typically, a difference of 5-8 dB is enough to ensure the weak signal is suppressed.
The capture phenomenon allows simultaneous FM radio links to be established in the same physical area on the same RF channel if the relative positioning of the transmitters and receivers is such that the “desired” signal for each receiver is stronger than the “perturbations”.
The example in FIG. 3 illustrates a possible situation with two independent radio links. Radio link #1 is established between Transmitter #1 and Receiver #1, placed at distance D11 from one another. Radio link #2 is established between Transmitter #2 and Receiver #2, placed at distance D22 from one another. The two transmitters and the two receivers coexist in the same area (both receivers are in the operating range of both transmitters) and the radios all work on the same RF channel. For simplicity, assume that the two receivers are similar (same sensitivity) and the two transmitters are also similar (same radiated power).
For Receiver #1, Transmitter #1 transmits the desired signal while Transmitter #2 is the perturbation. For Receiver #2, Transmitter #2 transmits the desired signal while Transmitter #1 is the perturbation. If at a given moment, Transmitter #1 is OFF, then Receiver #1 is able to receive and decode the signal transmitted by Transmitter #2 (the perturbation). But of course, because the ID codes are different, Receiver #1 will ignore the packets received from Transmitter #2. When Transmitter #1 is turned ON, if D11<D12, the desired signal at Receiver #1 is stronger than the perturbation and can be received due to the FM capture effect. In conclusion, if D11<D12 and D22<D21, then the desired signal is stronger than the perturbation and both radio links can be operated simultaneously.
The Problem
The FM capture effect discussed above will allow simultaneous links on the same channel, as long as the transmitters transmit continuously. However, if the transmitters are turned OFF when the wireless device is in standby, and turned ON only when data is available (which is desirable, for power saving reasons), the first packet in the RF transmission may be lost if at least one of the collocated transmitters is ON at that moment. FIGS. 4 and 5 illustrate how this could happen.
In both of the examples illustrated in FIGS. 4 and 5, it is assumed the desired transmitter is initially OFF and is turned ON eventually, while another transmitter in the area is ON all the time, or at least at the moment when the desired transmission starts. Missing the first packet in a transmission could be disturbing and inconvenient for the user. For instance, a wireless keyboard typically transmits isolated packets. A wireless mouse may also transmit isolated packets for button actuations. If an isolated packet is missed, the associated user action is of no effect and must be reexecuted by the user.
In the first example illustrated in FIG. 4, the receiver monitors the traffic on the RF channel and decodes the data coming from another transmitter (the “perturbation” in FIG. 4). As long as the desired transmitter is OFF, the radio receiver output follows the perturbation. These packets are sent with a different ID, so no action is actually taken by the receiver; nonetheless, it listens to and decodes the packets. When the desired signal starts, the receiver “captures” it, and the receiver output follows the desired signal. In the example depicted in FIG. 4, the relative timing of the two signals (perturbation and desired signal) happens to be such that a short pulse is generated at the receiver output. This invalid symbol (shorter than 0.75T) will cause the receiver to abort processing the current packet and return to the waiting state, i.e., reinitialize. As a result, the receiver can process and decode the first packet in the desired transmission, so long as sufficient header pulses of the desired signal are received following the reinitialization.
In the example of FIG. 5, the relative timing of the two signals (perturbation and desired signal) happens to be such that no invalid pulse is generated at the receiver output when the desired signal is captured. Consequently, the receiver will continue processing the current packet (as if it were part of the previously processed perturbation signal), possibly up to the SYNC symbol in the desired packet. SYNC is an invalid symbol (when in the body of the data block) and causes the receiver to abort the current packet and return to the waiting state. The first packet in the desired transmission is lost in this case, since reinitialization has occurred after the header of the desired signal has already passed. Note that there are several other possible scenarios for the case depicted in FIG. 5. For instance, the packet in process may be almost completed when the desired signal starts. In this case, the current packet may be completed after a few more pulses and then rejected because of errors or non-matching ID. The receiver returns to the waiting state and may still be able to receive enough header pulses to decode the first packet in the desired transmission.
The waveforms shown in FIGS. 4 and 5 assume that the receiver instantly “captures” the stronger (desired) signal. In fact, this is generally not the case, because of the transient regime when the RF signal changes suddenly. For a short time after the desired signal starts (typically, one to two header pulses), the receiver output is unpredictable. In some cases valid symbols are generated; in other cases, invalid symbols may be generated.